package com.example.myandroidapp.kotlin

/*
* 流程控制语句：if else、when、
* 循环语句：for、while、do while
*
*/

fun main() {
    println(getMax(10, 20))
    println(getMax2("nedy"))
    println(getMax3(90))
    forLoop()
    whileLoop()
    doWhileLoop()
}

//if语句，接收参数，判断返回值
fun getMax(a: Int, b: Int): Int {
    return if (a > b) a else b
}

//when语句：匹配条件、跟鸿蒙switch一样
fun getMax2(str: String): String {
    return when (str) {
        "ndy" -> "你大爷"
        "nedy" -> "你二大爷"
        else -> "你祖宗"
    }
}

//when语句：匹配条件更强大，还支持区间匹配（in 区间 -> 返回值）
/*
* 注意： ..：表示区间(左右闭口)，until：表示区间(左闭又开)
*/
fun getMax3(i: Int): String {
    return when (i) {
        in 1..59 -> "不及格"
        in 60..80 -> "良好"
        in 80 until 90 -> "优秀"
        in 90..100 -> "无敌"
        else -> "不能开挂"
    }
}


/*
* for 循环: for (变量 in 集合) {}
* 区间相关概念：
● 1..10 表示闭区间[1,10]
● 1 until 10 左闭右开区间 [1,10)
● 1..10 step 2 step表示步长
● downTo 降序
*
*/
fun forLoop() {
    //1到10循环打印
    for (i in 1..10) {
        println(i)
    }
    //1到10步长为2循环打印
    for (i in 1..10 step 2) {
        println(i)
    }
    //1到10步长为2,左闭又开循环打印
    for (i in 1 until 10 step 2) {
        println(i)
    }
    //10到1循环打印
    for (i in 10 downTo 1) {
        println(i)
    }
    //10到1步长为3，循环打印
    for (i in 10 downTo 1 step 3) {
        println(i)
    }
}


/*
* while 循环、do while 循环
*
*/
fun whileLoop() {
    var i = 11
    while (i <= 10) {
        println("wile:$i")
    }
}

fun doWhileLoop() {
    var i = 11
    do {
        println("dowile:$i")
    } while (i <= 10)
}